home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / fb386 / lib / blb / imageinf.blb < prev    next >
Text File  |  1995-02-15  |  3KB  |  48 lines

  1. 60600 '========================= 画像情報取得ルーチン Version 1.15 ===================================
  2. 60601  '--------------------- TIFF画像情報取得ルーチン  version 1.20 -----------------------------
  3. 60602  '入力  FILE$       ...対象となるファイル(拡張子必要)(必要ならばパス名もつける)
  4. 60603  '      A           ...本ルーチン内で使用してよいファイル番号(1~16)
  5. 60604  '出力  TIFF_INF%(0)...X軸方向の長さ(ファイルがTIFF形式でない時は-1を返す)
  6. 60605  '      TIFF_INF%(1)...Y軸方向の長さ
  7. 60606  '      TIFF_INF%(2)...色数(1=2色 4=16色 8=256色 15= 32768色 24= 16777216色)
  8. 60607  '      TIFF_INF%(3)...圧縮情報(1...非圧縮 5...LZW圧縮)
  9. 60608  '      TIFF_INF%(4)...パレット(0...無し 1...有り)
  10. 60609  '使用変数  A$,B%,C%,D%,I%
  11. 60610 *BLB_INF_TIFF
  12. 60611  TIFF_INF%(0)=0:ERASE TIFF_INF%:DIM TIFF_INF%(4):OPEN "I",#A,FILE$
  13. 60612  IF INPUT$(4,A)<>CHR$(&H49,&H49,&H2A,0) THEN CLOSE #A:TIFF_INF%(0)=-1:RETURN
  14. 60613  B%=ASC(INPUT$(4,A)):IF B%>8 THEN A$=INPUT$(B%-8,A)
  15. 60614  D%=ASC(INPUT$(1,A))+ASC(INPUT$(1,A))*256:FOR I%=1 TO D%
  16. 60615   B%=ASC(INPUT$(1,A))+ASC(INPUT$(1,A))*256:A$=INPUT$(6,A)
  17. 60616   C%=ASC(INPUT$(1,A))+(ASC(INPUT$(1,A))AND 127)*256
  18. 60617   IF B%=&H100 THEN TIFF_INF%(0)=C%
  19. 60618   IF B%=&H101 THEN TIFF_INF%(1)=C%
  20. 60619   IF B%=&H102 AND CVI(LEFT$(A$,2))=768 THEN
  21. 60620    IF CVI(MID$(A$,3,2))=256 THEN TIFF_INF%(2)=C%+(C%=16)
  22. 60621    IF CVI(MID$(A$,3,2))=768 THEN TIFF_INF%(2)=24
  23. 60622   ENDIF
  24. 60623   IF B%=&H103 THEN TIFF_INF%(3)=C%
  25. 60624   IF B%=&H106 THEN TIFF_INF%(4)=-(C%=3)
  26. 60625   A$=INPUT$(2,A):NEXT:CLOSE #A:RETURN
  27. 60626 '-------------------- JPEG画像情報取得ルーチン  version 1.10 -------------------------------
  28. 60627  '入力  FILE$       ...対象となるファイル(拡張子必要)(必要ならばパス名もつける)
  29. 60628  '出力  JPEG_INF%(0)...X軸方向の長さ
  30. 60629  '      JPEG_INF%(1)...Y軸方向の長さ
  31. 60630  '      JPEG_INF%(2)...サンプリング比(X:1)
  32. 60631  '      JPEG_COM$   ...コメント
  33. 60632  '変数  A$,A%,I%
  34. 60633 *BLB_INF_JPEG
  35. 60634  BLB_JPEG%(0)=0:BLB_F$(1)="":A$="":JPEG_COM$="":ERASE BLB_JPEG%
  36. 60635  FILES FILE$,N,BLB_F$:BLB_FILE&(0)=VAL(MID$(BLB_F$(1),13,14))
  37. 60636  DIM BLB_JPEG%(BLB_FILE&(0)/2):LOAD@ FILE$,BLB_JPEG%
  38. 60637  BLB_FILE&(1)=VARPTR(BLB_JPEG%(0)):BLB_FILE&(0)=BLB_FILE&(0)+BLB_FILE&(1):A%=0
  39. 60638  WHILE BLB_FILE&(1)=<BLB_FILE&(0) AND A%<2
  40. 60639   IF PEEK(BLB_FILE&(1))=255 THEN
  41. 60640    IF PEEK(BLB_FILE&(1)+1)=192 THEN FOR I%=5 TO 11:A$=A$+CHR$(PEEK(BLB_FILE&(1)+I%)):NEXT:A%=A%+1
  42. 60641    IF PEEK(BLB_FILE&(1)+1)=254 THEN FOR I%=1 TO PEEK(BLB_FILE&(1)+3)-2:JPEG_COM$=JPEG_COM$+CHR$(PEEK(BLB_FILE&(1)+I%+3)):NEXT:A%=A%+1
  43. 60642    IF PEEK(BLB_FILE&(1)+1)>207 AND PEEK(BLB_FILE&(1)+1)<218 THEN BLB_FILE&(1)=BLB_FILE&(1)+1 ELSE BLB_FILE&(1)=BLB_FILE&(1)+PEEK(BLB_FILE&(1)+2)*256+PEEK(BLB_FILE&(1)+3)+1
  44. 60643   ENDIF
  45. 60644   BLB_FILE&(1)=BLB_FILE&(1)+1:WEND:ERASE BLB_JPEG%,BLB_F$
  46. 60645  JPEG_INF%(0)=CVI(MID$(A$,3,2)):JPEG_INF%(1)=CVI(LEFT$(A$,2))
  47. 60646  I%=ASC(RIGHT$(A$,1)):JPEG_INF%(2)=(I%\16)*(I% AND 15):RETURN
  48.